$(function(){
	//得到uuid
	loadFileList(parentId);
	$("ul li a[href$='cdDocFileList.jsp']").addClass("active");
	//新建文件夹事件
	$("#createFileDiv").on("click",".createFile",function(e){
		showCreateFileWarp();
	});
	
	//添加事件  保存文件夹
	$("#cdDocCreateFile").on("click",".saveFile",function(e){
		e.stopPropagation();			//阻止冒泡
		saveFile(); 
	});
	
	//取消事件 取消保存文件
	$("#cdDocCreateFile").on("click",".hideFileAddBtn",function(e){
		e.stopPropagation();			//阻止冒泡
		hideFileAddWarp();
	});
	//单个checkbox事件
	//$('#cdDocDivList').on('click','.selectCheck',showCheckedCount);
	
	//选中所有的checkBox 事件代表选中所有
	$('table th input:checkbox').on('click', function(){
		var p = this;
		$(p).closest('table').find('tr > td:first-child input:checkbox').each(function(){
			this.checked = p.checked;
		});
		
		showCheckedCount();		//修改选中数
	});

	
	//恢复事件		
	enablePageClick();
	
	
	//删除 事件
	$("#fileName").on("click",".buttonDelete",remove);

	
	//给目录导航条添加事件
	$("#navigationFile").on("click","a",function(e){
		e.preventDefault();
		var key = $(this).attr("key");
		clickFolderFn(key,true);
	});
	
	//点击全部文件的事件导航条
	$("#skipFile").on("click","a",function(e){
		e.preventDefault();
		clickFolderFn("",true);
	});
	
	
	$.extend(Otod.file.defaultOptions,{
		url: Global.ctx + "/servlet/upload?type=interfaceManage&beanName=cdDocFileService",
		type:"commonManage",
		isBusid:true,
		sending: function(file, xhr, formData){
			formData.append("parentId", parentId);
			formData.append("fileType",40040001);
		},
		success: function(file, data, e) {
			loadFileList(parentId);
		},
		error: function(file, message){
			Otod.Msg.error(message.error);
			$("#fileActive").hide();
			document.getElementById("progress").style.width = 0 + "%";
		},
	});
	
	//可拖拽到当前页面上传
	Otod.file.init(document.body,{
		clickable:false,
		
		success: function(file, data, e) {
			$("#fileActive").hide();
			document.getElementById("progress").style.width = 0 + "%";
			location.reload();
		},
		//进度条
		uploadprogress:function(file,progress, bytesSent) {
			
			$("#fileActive").show();
			document.getElementById("progress").style.width = progress + "%";
			if (progress == 100) {
				$("#fileActive").hide();
			}
		}
	});	
	
	//点击按钮上传
	Otod.file.init($(".btn-upload")[0],{
		clickable:true,
		success: function(file, data, e) {			
			location.reload();
		},
		//进度条
		uploadprogress:function(file,progress, bytesSent) {
			$("#fileActive").show();
			document.getElementById("progress").style.width = progress + "%";
			/*if (progress == 100) {
				$("#fileActive").hide();
				document.getElementById("progress").style.width = 0 + "%";
			}*/
		}
	});	

	
	//分享事件
/*
	$('#stepModen-form').bootstrapValidator();
	$('#tpModen-form').bootstrapValidator();
	//showTpModal($("#addTpModen"));
	//保存分享
	$(".saveShare").on("click",function(){
		saveShare();
	});*/
	
	
	/**
	 * 去掉选中的人员
	 */
	$("#target").on("click",".deletePRJ",function(){
			
			deletePRJ(this);
	});
	
	/**
	 * 添加人员
	 */
	
	$("#personDiv").on("click",".addPerson",function(){
		addPerson();
	});
	
	
	/**
	 * 添加角色
	 */
	$("#roleDiv").on("click",".addRole",function(){
		addRole();
	});
	
	
	/**
	 * 添加分享
	 */
	$("#projectDiv").on("click",".addProject",function(e){
		e.stopPropagation();			//阻止冒泡
		addProject();
	});
	
	/**
	 * 保存分享
	 */
	$("#updateShareDiv").on("click",".updateShare",function(){
		updateShare();
	});
	
});

/**
 * 是否为文件夹
 * @param type	类型
 */
function isFolderFn(type){
	return type=="40010001";
}


/**
 * 显示选中文件数
 */
function showCheckedCount(){
	var choiceNumbers = $('#cdDocDivList .selectCheck:checked').length;
	
	var html = "文件名";
	if(choiceNumbers>0){
		html = '<lable id="file_action_word">已选中'+choiceNumbers+'个文件/文件夹</lable>&nbsp;&nbsp;&nbsp;&nbsp;<button type="button" class="btn btn-xs btn-checkBox icon-trash buttonDelete" data-toggle="button" >删除</button>';
	}else{
		html = "文件名";
	}
	
	$("#fileName").html(html);	
	
}

//运行页面查询的方法
//parentId 上级目录的id
function loadFileList(parentId){
	//用于存储导航条的名字和id
	Otod.ajax({
		url: ctx + '/cd/doc/queryForList.do',
		data:{parentId:parentId,type:"40040001"},
		type:"GET",
		successFn : function(data){	
			var vo = data.cdDocFolderVo;
			buildCrumbs(vo);
			
			renderFileList(data.childrenList);
		}
	});
}


/**
 * 生成面包屑
 * @param vo
 */
function buildCrumbs(vo){
	//分割路径的名字
	var pathName = vo.folderPathName;
	var pathNameArray = new Array();
	var pathIdArray = new Array();
	if(pathName){
		pathNameArray = pathName.split(",");
		pathIdArray = vo.folderPath.split(",");
	}
	pathNameArray.push(vo.folderName);	
	pathIdArray.push(vo.uuid);	
	//导航条的全部文件 变成超链接
	var skipFile = '<a href="#" class="allFile">全部文件</a>';
	var html = Mustache.render(skipFile);
	$("#skipFile").html(html);
	var pathSb = new StringBuffer();
	for(var i=0;i<pathIdArray.length;i++){
		pathSb.append(' <i class="icon-fixed-width icon-angle-right dark"></i> ');
		pathSb.append(' <a href="#"  key="').append(pathIdArray[i]).append('"> ');							
		pathSb.append(pathNameArray[i]);
		pathSb.append('</a>');
	}
	$("#navigationFile").html(pathSb.toString());
}

/**
 *  文件/文件夹点击事件
 *  @param fileId 文件ID
 *  @param isFolder 是否为文件夹
 */
function clickFolderFn(fileId,isFolder){
	fileId = fileId?fileId:"";
		
	if(isFolder){						
		window.location.href = ctx+"/jsp/cd/doc/cdDocFileList.jsp?parentId="+fileId;
	}else{							//下载文件
		Otod.file.download(fileId);
	}
}


/**
 * 向页面插入分享文件给我的信息主页
 * @param data
 */
function renderFileList(data){
	var showListMtp = $('#showListMtp').html();
	Mustache.parse(showListMtp);
	
	var itemMtp = $('#itemMtp').html();
	
	var rendered = Mustache.render(showListMtp,{
			data: data,
			isfolder: function(){					//是否为文件夹
				return isFolderFn(this.folderType);
			},
			formatDt: function(){
				return function(text,render){
					return DateUtil.dateFormat(+render(text));		//+render(text)  加号是把string转换为number类型
				};
			}
	},{itemMtpLink:itemMtp});
	$("#cdDocDivList").html(rendered);
}




/**
 * 新建文件夹
 */
function showCreateFileWarp(){
	//禁用点击事件
	disablePageClick();
	var showCreateFile = $("#showCreateFile").html();
	Mustache.parse(showCreateFile);
	var readered = Mustache.render(showCreateFile,{
		folderPath:$("#parentId").val(),
		folderPahtName:$("#folderPath").val(),
	});
	$("#cdDocCreateFile").html(readered);	
}

/**
 * 隐藏添加文件
 */
//创建文件的时候点击取消
function hideFileAddWarp(){
	document.getElementById("cdDocCreateFile").deleteRow(0);//不支持jquery
	//恢复事件
	enablePageClick();
}

//保存文件夹
function saveFile(){
	enablePageClick();
	Otod.ajax({
		url: ctx + '/cd/doc/saveFolder.do',
		data:{parentId:parentId,folderName:$("#creatFileName").val(),type:40040001},
		type:"GET",
		successFn : function() {
			//动态生成数据列表 删除新增列表
			document.getElementById("cdDocCreateFile").deleteRow(0);
			loadFileList(parentId);
		}
	});
}

//恢复文件夹事件
function enablePageClick(){
	var v = 0;
	//点击文件名
	$("#cdDocDivList").on("click",".folderCls",function(e){
		e.preventDefault();
		e.stopPropagation();			//阻止冒泡
		
		var fileId = $(this).attr("key");
		var folderType = $(this).attr("folderType");
		
		clickFolderFn(fileId,isFolderFn(folderType));
	});
	
	//添加下载 
	$("#cdDocDivList").on("click",".downupLoad",function(e){
		e.preventDefault();
		e.stopPropagation();			//阻止冒泡
		clickFolderFn($(this).attr("key"),false);
	});
	
	//添加事件
	$('#cdDocDivList').on('click','.selectCheck',function(e){
		e.stopPropagation();			//阻止冒泡
		//v = v+1;
		showCheckedCount();
		//这个事件要和$("#cdDocDivList").on("click",".clickTr",function(e) 互掉
	});
	$("#cdDocDivList").on("click",".clickTr",function(e){	
		e.stopPropagation();			//阻止冒泡
		$(this).find(":checkbox").trigger('click');
		showCheckedCount();
		/*if(v==0){
			$(this).find(":checkbox").trigger('click');
			showCheckedCount();
		}
		v=0;*/
	});
	
	//重新命名
	$("#cdDocDivList").on("click",".updateFileName",function(e){
		e.stopPropagation();			//阻止冒泡
		updateFileName($(this).attr("uuid"),$(this).attr("folderName"),$(this).attr("folderType"));
	});
	//分享  
	$("#cdDocDivList").on("click",".shareFileName",function(e){
		e.stopPropagation();			//阻止冒泡
		shareFileName(this,$(this).attr("uuid"));
	});
	
	
}

/**
 * 禁用页面点击事件
 */
function disablePageClick(){
	$('#cdDocDivList').unbind("click"); //移除click
}

//删除文件夹或者文件 
function remove(){ 
	
	Otod.Msg.confirm('您确定要删除选中的文件或文件夹',"删除", delOk);
	function delOk(){
		var checkedArrays = $('#cdDocDivList .selectCheck:checked');
		var checkedStr = "";
		for (var i = 0; i < checkedArrays.length; i++) {
			if(i==0){
				checkedStr=checkedArrays[i].value;
			}else{
				checkedStr=checkedStr+","+checkedArrays[i].value;
			}
		}
		
		Otod.ajax({
				url: ctx + '/cd/doc/deleteFolder.do',
				data: {parentId:checkedStr},
				type:"GET",
				successFn : function(data) {
					enablePageClick();
					//重新加载一下数据
				
					loadFileList();
					$("#fileName").html("文件名");
					//删除之后让最上面的checkBox不选中
				}
		}); 
		
	}
	
}
//操作checkbox
function operationCheckBox(CKBox){
	
}

//删除选中的文件
function choiceCkeck(uuid){
	$(this).closest('table').find('input:checkbox').each(function(){
		//得到选中状态
		this.checked = that.checked;
	
		if(this.checked){
			var temp=document.getElementsByName('changeCheckboxFile');
			for(var i=0;i<temp.length;i++){
				if(i==0){
					text=temp[i].value;
				}else{
					text=text+","+temp[i].value;
				}
			}
			$("#folderChoose").val(text);	
		}else{//未选中
			//重新赋值
			$("#fileName").html("文件名");
			return;
		}
		showCheckedCount();
	});
	
}




//下载
function downupLoad(){
	alert(1);
}

//重命名
function updateFileName(uuid,folderName,folderType){
	disablePageClick();
	
	//重命名保存
	$("#cdDocDivList").on("click",'.saveUpdateFileName',function(e){
		
		saveUpdateFileName($(this).attr("key"));
	});
	//取消
	$("#cdDocDivList").on("click",'.exitUpdateFileName',function(e){
		
		exitUpdateFileName($(this).attr("key"),$(this).attr("folderName"),$(this).attr("folderType"));
	});
	var html ="<i class='icon-folder-close blue'></i>" +
			 	"<input type='text' id='updateNameId' value='"+folderName+"'/>"+
			 	"<button class='btn btn-xs btn-success saveUpdateFileName' key='"+uuid+"' type='button'>"+
			 	"<i class='icon-ok bigger-110 red'></i>"+
			 	"</button>"+
			 	"	"+
			 	"<button class='btn btn-xs btn-success exitUpdateFileName' key='"+uuid+"' folderName='"+folderName+"' folderType='"+folderType+"' type='button'>"+
			 	"<i class='icon-remove bigger-110 blue'></i>"+
			 	"</button>";
			 			 	
	$("#"+uuid).html(html);
}


//重命名保存

function saveUpdateFileName(uuid){
	//得到修改的名字
	Otod.ajax({
		url: ctx + '/cd/doc/updateFolderName.do',
		data:{parentId:parentId,uuid:uuid,folderName:$("#updateNameId").val()},
		type:"GET",
		successFn : function() {
			//动态生成数据列表 删除新增列表
			//document.getElementById("cdDocCreateFile").deleteRow(0);
			enablePageClick();
			loadFileList(parentId);
		}
	});
}




//重命名取消
function exitUpdateFileName(uuid,folderName,folderType){
	var itemMtp = $('#itemMtp').html();
	Mustache.parse(itemMtp);
	
	var rendered = Mustache.render(itemMtp,{
			uuid: uuid,
			folderName: folderName,
			folderType: folderType,
			isfolder: function(){					//是否为文件夹
				return isFolderFn(this.folderType);
			}
	});
	
	
	$("#"+uuid).html(rendered);
	enablePageClick();
}

/**
 * 清空数据 是让checkBox 不选中
 */
function emptyCheckBoxOrFileName(){
	$("#fileName").html("文件名");
	//删除之后让最上面的checkBox不选中
	//$('.ace').attr("checked",false); --直接通过类名删除
	$('table th input:checkbox').attr("checked",false);
	
};





/**
 * 弹出分享的页面
 */
function shareFileName(btn,uuid){
	
	//设置分享的文件的uuid
	$("#shareUuid").val(uuid);

	
	//清空原有数据
	resetStepModen();
	//弹出对话框
	showModal(btn,"updateShareModen",uuid);	
}
/**
 * 重置shareFileName moden
 */
function resetStepModen(){
	
	//$("#shareModen-form")[0].reset();
	//$("#stepModen-form [name='tpId']").val(tpId);		//初始化tpId
	//$("#stepModen-form [name='shareType']").val("");		//初始化tpId
	$("#shareType").val("");
	$("#person button + button").remove();
	$("#role button + button").remove();
	$("#project button + button").remove();
	
}

//显示修改的modal
function showModal(btn,modal,uuid){

	$("#target").hide();
	
	//通过文件夹的id 查询是否分享过 如果分享就重新加载数据
	
	
	var modalObj = getJqueryObj(modal);
	//显示弹出层
	modalObj.modal();
	//调用查询数据
	selectShare(uuid);
	//这句是设置位置的
	//setModelFlowBtn(modalObj.children(".modal-dialog").get(0),btn);
}

/**
 * 查询分享文件的信息
 * @param uuid
 */
function selectShare(uuid){

	Otod.ajax({
		url:ctx+'/cd/Share/queryForListShare.do',
		data:{uuid:uuid},
		type:'GET',
		successFn:function(data){
			//设置选择类型
			
			if(data.shareType!=null){
				
				$("#shareType").val(data.shareType);
			}
			
			//把角色显示出来
			if(data.shareType=="40020001"){
				$("#target").show();
			}else{
				$("#target").hide();
			}
				//得到数据
				$.each(data.shareAuthList,function(i,n){
				
					//人员
					if(n.targetType=="40030001"){
						
						selectPerson(n.targetId);
					//角色
					}else if(n.targetType=="40030002"){
						selectRole(n.targetId);
					//项目
					}else if(n.targetType=="40030003"){
						selectProjcet(n.targetId);
						
					}
				});		
		}
	});
	//初始化下拉控件 出现搜索
	$(".select2").select2();
}

/**
 * 当选择项目类型改变的时候
 */
$("#shareType").change(function() {	
	if($(this).val()=="40020001"){
		$("#target").show();
	}else{
		$("#target").hide();
	}
});


/********************************查询人员信息*********************************************/

/**
 * 查询所有人员的信息
 */
function selectPerson(targetId){
	
	$("#stepModen-btn-save").val("privatePerson");
	//查询出所有的人员信息
	var sb = new StringBuffer();
	Otod.ajax({
		url: ctx + '/cd/doc/selectPerson.do',
		type:"POST",
		successFn : function(data){	
			
			$.each(data,function(i,n){
			
				if(n.empNo==targetId){
					basePerson(n,sb);
					return;
				}
				
			});
		
			
		}	
	});

}
/**
 * 动态添加人员信息
 * @param n
 * @param sb
 */
function basePerson(n,sb){
	
	sb.append('	 ');
	sb.append('<button type="button" class="btn btn-xs btn-checkBox deletePRJ active" data-toggle="button" value="'+n.empNo+'"><i class="icon-ok"></i>');
	sb.append(n.empName);
	sb.append('</button>');
	
	$("#person").children().last().after(sb.toString());
}
/************************************查询角色*********************************************/
/**
 * 查询所有的角色
 */

function selectRole(targetId){
	$("#stepModen-btn-save").val("privateRole");
	//查询出所有的人员信息
	var sb = new StringBuffer();
	Otod.ajax({
		url: ctx + '/cd/doc/selectRole.do',
		type:"POST",
		successFn : function(data){	
			
			$.each(data,function(i,n){


				if(n.uuid==targetId){
					baseRole(n,sb);
					return;
				}
			});
		
			
		}	
	});
}

/**
 * 动态添加角色信息
 * @param n
 * @param sb
 */
function baseRole(n,sb){
	sb.append('	 ');
	sb.append('<button type="button" class="btn btn-xs btn-checkBox deletePRJ checkBoxButton active" data-toggle="button" value="'+n.uuid+'"><i class="icon-ok"></i>');
	sb.append(n.roleName);
	sb.append('</button>');
	$("#role").children().last().after(sb.toString());
}

/***************************************************************************************/
/*************************************查询项目***************************************************/
/**
 * 查询项目 
 */
function selectProjcet(targetId){
	$("#stepModen-btn-save").val("privateProject");
	//查询出所有的人员信息
	var sb = new StringBuffer();
	Otod.ajax({
		url: ctx + '/cd/doc/selectProjcet.do',
		type:"POST",
		successFn : function(data){	
			$.each(data,function(i,n){
				
				if(n.uuid==targetId){
					basePrject(n,sb);
					return;
				}
			});
		
			
		}	
	});
}


/**
 * 动态添加项目信息
 * @param n
 * @param sb
 */
function basePrject(n,sb){
	sb.append('	 ');
	sb.append('<button type="button" class="btn btn-xs btn-checkBox checkBoxButton active deletePRJ" data-toggle="button" value="'+n.uuid+'" ><i class="icon-ok"></i>');
	sb.append(n.prjName);
	sb.append('</button>');
	$("#project").children().last().after(sb.toString());
}

/**
 *点击 人员 项目 角色 去掉选中的
 */
function deletePRJ(btn){
	//删除点击的button
	$(btn).remove();
}
/**
 * 添加人员
 */
function addPerson(){
	//得到选择框的数据
	var empNo=$("#empNo").val();
	var empName=$("#empNo").find("option:selected").text();
	
	
	if(empNo==null||empNo==""){
		Otod.Msg.info("请选择要添加的人员");
		return
	}
	
	//判断当前页面是否存在相同的
	
	//得到所有选中的person下面所有 button的值
	var allPerson=allButton($("#person"));
	var allPerSonSplit = allPerson.split(";");
	
	for (var i = 0; i < allPerSonSplit.length; i++) {
		
		if(allPerSonSplit[i]==empNo){
			Otod.Msg.info("该人员已经存在");
			return;
		}
	}
	var sb  = new StringBuffer();
	sb.append('	 ');
	sb.append('<button type="button" class="btn btn-xs btn-checkBox checkBoxButton deletePRJ active" data-toggle="button" value="'+empNo+'" ><i class="icon-ok"></i>');
	sb.append(empName);
	sb.append('</button>');
	
	$("#person").children().last().after(sb.toString());
}


/**
 * 添加角色
 */
function addRole(){
	//得到选择框的数据
	var uuid=$("#roleNo").val();
	var roleName=$("#roleNo").find("option:selected").text();
	if(roleNo==null||roleNo==""){
		Otod.Msg.info("请选择要添加的人员");
		return
	}
	//判断当前页面是否存在相同的角色
	//得到所有选中的role下面所有 button的值
	var allRole=allButton($("#role"));
	var allRoleSplit = allRole.split(";");
	for (var i = 0; i < allRoleSplit.length; i++) {
		
		if(allRoleSplit[i]==uuid){
			Otod.Msg.info("该角色已经存在");
			return;
		}
	}
	var sb  = new StringBuffer();
	sb.append('	 ');
	sb.append('<button type="button" class="btn btn-xs btn-checkBox checkBoxButton deletePRJ active" data-toggle="button" value="'+uuid+'" ><i class="icon-ok"></i>');
	sb.append(roleName);
	sb.append('</button>');
	
	$("#role").children().last().after(sb.toString());
}

/**
 * 添加项目
 */
function addProject(){
	//得到选择框的数据
	var uuid=$("#prjName").val();
	var prjName=$("#prjName").find("option:selected").text();
	
	if(empNo==null||empNo==""){
		Otod.Msg.info("请选择要添加的人员");
		return
	}
	//判断是否存在
	//得到所有选中的person下面所有 button的值
	var allProject=allButton($("#project"));
	var allProjectSplit = allProject.split(";");
	
	for (var i = 0; i < allProjectSplit.length; i++) {
		if(allProjectSplit[i]==uuid){
			Otod.Msg.info("该人员已经存在");
			return;
		}
	}
	var sb  = new StringBuffer();
	sb.append('	 ');
	sb.append('<button type="button" class="btn btn-xs btn-checkBox checkBoxButton deletePRJ active" data-toggle="button" value="'+uuid+'" ><i class="icon-ok"></i>');
	sb.append(prjName);
	sb.append('</button>');
	
	$("#project").children().last().after(sb.toString());
}

/**
 * 得到人员 角色 项目 的数据
 * @param btn
 * @returns
 */
function allButton(btn){
	var strs = btn.children(".active");
	var sb = new StringBuffer();
	strs.each(function(i,t) {
		sb.append(";").append($(t).val());
	});
	return sb.toString().substring(1);
	
}




/**
 * 公开分享 
 */
function publicShare(){
	
	Otod.ajax({
		url:ctx+'/cd/doc/publicShare.do',
		data:{uuid:$("#shareUuid").val()},
		type:"GET",
		successFn:function(data){
			Otod.Msg.info(data);
		}
	});
}


/**
 * 保存
 */
function updateShare(){
	//得到所有选中人员
	var person = allButton($("#person"));
	var role = allButton($("#role"));
	
	var project = allButton($("#project"));
	var shareType = $("#shareType").val();
	var uuid =$("#shareUuid").val();
	
	
	if(shareType==""){
		Otod.Msg.info("请选择分享方式");
		return;
	}

	/**
	 * 公开分享
	 */
	if(shareType=="40020002"){

		Otod.ajax({
			url:ctx+'/cd/doc/publicShare.do',
			data:{uuid:uuid},
			type:"GET",
			successFn:function(data){
				Otod.Msg.info("分享成功");
			}
		});
		return
	}
	
	if(person==""&&role==""&&project==""){
		Otod.Msg.info("请选择分享的类别");
		return;
	}
	
	
	Otod.ajax({
		url:ctx+'/cd/doc/updateShare.do',
		data:{person:person,role:role,project:project,shareType:shareType,uuid:uuid},
		type:"GET",
		successFn:function(data){
			Otod.Msg.info("分享成功");
		}
	});
}

/**
 * 得到所有选中的button 人员 或者角色 项目
 * @param parameter 选择 人员 角色 项目
 * @returns
 */
function selectPersonButton(parameter){
	var strs = $("#"+parameter).children(".active");
	var sb = new StringBuffer();
	strs.each(function(i,t) {
		sb.append(",").append($(t).val());
	});
	return sb.toString().substring(1);
}

